﻿using Generico.Coneccion;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Administracion
{
    public partial class Encuestas : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                CargarLista();
                if (lstInfo.Items.Count >= 1)
                {
                    this.lstInfo.SelectedIndex = 0;
                    cargardatos(Convert.ToInt32(lstInfo.SelectedValue));
                }
                Habilitar(true);
            }

            if (!this.IsPostBack)
            {
                CargarLista();
                if (lstInfo.Items.Count >= 1)
                {
                    this.lstInfo.SelectedIndex = 0;
                    cargardatos(Convert.ToInt32(lstInfo.SelectedValue));
                }
                Habilitar(true);
            }
        }

        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            Limpiar();
            Visualizar(true);
            Habilitar(false);
            this.Session.Add("Transaccion", "A");
        }

        protected void btnEliminar_Click(object sender, EventArgs e)
        {
            var cn = new ClsConeccion();
            cn.Abrir();
            cn.EjecutarSql("Delete Encuestas where Id = " + txtId.Text);
            cn.Cerrar();
            Response.Write("<script> alert('Se ha elimando correctamente');</script>");
            CargarLista();
        }

        protected void btnModificar_Click(object sender, EventArgs e)
        {
            Visualizar(true);
            Habilitar(false);
            this.Session.Add("Transaccion", "M");
        }

        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            string varTransaccion = Session["Transaccion"].ToString();

            var cn = new ClsConeccion();
            cn.Abrir();

            if (varTransaccion == "A")
            {
                cn.AgregarParametros("varTitulo", txtTitulo.Text);
                cn.AgregarParametros("varOpcion1", txtOpcion1.Text);
                cn.AgregarParametros("varOpcion2", txtOpcion2.Text);
                cn.AgregarParametros("varOpcion3", txtOpcion3.Text);
                cn.AgregarParametros("bitActivo", chkActivo.Checked); 
                cn.EjecutarSp("sp_ADM_NewEncuesta");
                CargarLista();
            }

            if (varTransaccion == "M")
            {
                cn.AgregarParametros("ID", Convert.ToInt32(txtId.Text));
                cn.AgregarParametros("varTitulo", txtTitulo.Text);
                cn.AgregarParametros("varOpcion1", txtOpcion1.Text);
                cn.AgregarParametros("varOpcion2", txtOpcion2.Text);
                cn.AgregarParametros("varOpcion3", txtOpcion3.Text);
                cn.AgregarParametros("bitActivo", chkActivo.Checked);
                cn.EjecutarSp("sp_ADM_UpdateEncuesta");


            }
            cn.Cerrar();
            Response.Write("<script> alert('Se ha guardado correctamente');</script>");
            Visualizar(false);
            Habilitar(true);
        }

        private void cargardatos(int valor)
        {
            var cn = new ClsConeccion();
            cn.Abrir();
            var rd = cn.EjecutarSqlDataReader("Select * From Encuestas where id = " + valor.ToString());
            while (rd.Read())
            {
                
                txtId.Text = rd["Id"].ToString();
                txtTitulo.Text = rd["Titulo"].ToString();
                txtOpcion1.Text = rd["Opcion1"].ToString();
                txtOpcion2.Text = rd["Opcion2"].ToString();
                txtOpcion3.Text= rd["Opcion3"].ToString();
                txtTotal1.Text = rd["Opcion1Vot"].ToString();
                txtTotal2.Text = rd["Opcion2Vot"].ToString();
                txtTotal3.Text = rd["Opcion3Vot"].ToString();
                this.txtTotalVotantes.Text = (Convert.ToInt32(rd["Opcion1Vot"]) + Convert.ToInt32(rd["Opcion2Vot"]) + Convert.ToInt32(rd["Opcion3Vot"])).ToString();
                this.chkActivo.Checked = Convert.ToBoolean(rd["Activo"]);
                
            }
            rd.Close();
            cn.Cerrar();
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Limpiar();
            Visualizar(false);
            Habilitar(true);
        }

        protected void lstInfo_SelectedIndexChanged1(object sender, EventArgs e)
        {
            if (lstInfo.SelectedValue != String.Empty)
            {
                cargardatos(Convert.ToInt32(lstInfo.SelectedValue));
            }
        }
        private void CargarLista()
        {
            var cn = new ClsConeccion();
            cn.Abrir();
            var rd = cn.EjecutarSqlDataReader("Select Id, Titulo FROM Encuestas order by Fecha desc");
            var dt = new DataTable();
            dt.Load(rd);
            this.lstInfo.DataSource = dt;
            this.lstInfo.DataTextField = "Titulo";
            this.lstInfo.DataValueField = "Id";
            this.lstInfo.DataBind();
            cn.Cerrar();
        }

        private void Limpiar()
        {
            txtId.Text = "";
            txtTitulo.Text = "";
            txtOpcion1.Text = "";
            txtOpcion2.Text = "";
            txtOpcion3.Text = "";
        }
        private void Visualizar(bool visible)
        {
            btnAceptar.Visible = visible;
            btnCancelar.Visible = visible;
        }
        private void Habilitar(bool habilitado)
        {
            btnModificar.Enabled = habilitado;
            btnAgregar.Enabled = habilitado;
            btnEliminar.Enabled = habilitado;
            txtTitulo.Enabled = !habilitado;
            txtOpcion1.Enabled = !habilitado;
            txtOpcion2.Enabled = !habilitado;
            txtOpcion3.Enabled = !habilitado;
            chkActivo.Enabled = !habilitado;

        }
    }
}